void main(){
  //也兼容了JAVA的语法 dart,kt  --java   java--->dart,kt
  // UserInfo userInfo = UserInfo("张三",18);
  var userInfo = UserInfo();
  // UserInfo userInfo = UserInfo(); 也可这样写
  userInfo.getUserInfo();

  var coffee = Coffee();
  coffee.heat();
  coffee.serve();



  //静态成员无需实例即可进行访问
  print(Person.name);
  Person.show();

}


/// 基础语法
/// 访问权限问题,dart里面没有权限关键字 public  private
/// dart对于默认值的设计
class UserInfo {

  // String name = "Mike";
  // int age = 22;

  //在dart中没有权限关键字，选择在以_开始的变量名上附加private权限
  String _name = '';
  int _age = 0;

  void getUserInfo(){
    print("$_name----$_age");
  }

  //兼容JAVA的构造方式
  // UserInfo(String name, int age){
  //   this.name = name;
  //   this.age = age;
  // }

  //Dart方案
  UserInfo();


}

// 访问权限
class Coffee {
  late String _temperature;

  void heat() { _temperature = 'hot'; }
  void chill() { _temperature = 'iced'; }

  String serve() => '$_temperature coffee';
}



/// 静态访问
class Person {
  //用static关键字声明静态成员
  static var name = "zz"; //静态值
  var age = 18;

  static void show() {//静态方法可以访问静态成员，但是不可以访问非静态的成员
    print(name);
  }

  void getInfo() {//非静态成员可以访问静态成员以及非静态成员
    print(name); //访问静态属性
    print(this.age); //访问非静态属性
    show(); //调用静态方法
  }
}


